LINQ ব্যবহার করে আপনি ডাটাবেস থেকে ডেটা ফেচ (fetch) করতে পারেন, বিশেষত যখন আপনি Entity Framework (EF) ব্যবহার করেন। Entity Framework একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা ডাটাবেস এবং .NET অবজেক্টের মধ্যে ম্যাপিং তৈরি করে। এটি ডাটাবেস থেকে ডেটা আনা, আপডেট করা, এবং মুছে ফেলা সহজ করে তোলে। LINQ এর মাধ্যমে Entity Framework থেকে ডেটা ফেচ করার প্রক্রিয়া খুবই সরল এবং প্রাকৃতিক।
Entity Framework (EF) এর সাহায্যে LINQ ব্যবহার করে আপনি ডাটাবেসের টেবিল থেকে ডেটা রিট্রাইভ (retrieve) করতে পারেন। EF ডাটাবেসের টেবিলগুলিকে ক্লাস হিসেবে রূপান্তরিত করে, এবং LINQ এর মাধ্যমে আপনি সেই ক্লাসগুলোতে কোয়েরি করতে পারেন।
ডাটাবেস থেকে ডেটা ফেচ করার জন্য নিচের প্রক্রিয়া অনুসরণ করতে হবে:
Microsoft.EntityFrameworkCore
NuGet প্যাকেজ ইনস্টল করতে হবে।DbContext ক্লাসটি EF Core-এ ডাটাবেসের সাথে যোগাযোগের জন্য ব্যবহৃত হয়। এর মাধ্যমে টেবিলের প্রতিনিধিত্ব করা ক্লাসগুলোর সাথে যোগাযোগ করতে পারেন।
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<Person> People { get; set; } // DbSet যা 'People' টেবিলের প্রতিনিধিত্ব করে।
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// ডাটাবেস কনফিগারেশন
optionsBuilder.UseSqlServer("Your_Connection_String");
}
}
এখানে, Person
হলো আপনার মডেল ক্লাস, যা টেবিলের প্রতিটি রেকর্ডের জন্য একটি অবজেক্ট তৈরি করে।
একবার Entity Framework কনফিগার করা হয়ে গেলে, আপনি LINQ ব্যবহার করে ডাটাবেস থেকে ডেটা ফেচ করতে পারবেন। এখানে দুইটি সাধারণ উদাহরণ দেওয়া হল: LINQ Query Syntax এবং LINQ Method Syntax।
using (var context = new ApplicationDbContext())
{
// Query Syntax ব্যবহার করে ডেটা ফেচ করা
var query = from person in context.People
where person.Age > 30
select person;
foreach (var person in query)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, context.People
হল Person
টেবিলের জন্য DbSet, এবং LINQ Query Syntax ব্যবহার করে Age
ফিল্ডের মান ৩০ এর বেশি এমন রেকর্ডগুলো ফেচ করা হয়েছে।
using (var context = new ApplicationDbContext())
{
// Method Syntax ব্যবহার করে ডেটা ফেচ করা
var query = context.People
.Where(p => p.Age > 30)
.ToList(); // ToList() এর মাধ্যমে রেজাল্ট ফেচ করা
foreach (var person in query)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, Method Syntax ব্যবহৃত হয়েছে যেখানে Where()
মেথড দিয়ে Age
ফিল্ডের মান ৩০ এর বেশি এমন রেকর্ডগুলি ফিল্টার করা হয়েছে।
using (var context = new ApplicationDbContext())
{
var person = context.People
.FirstOrDefault(p => p.Name == "Alice");
if (person != null)
{
Console.WriteLine($"Found: {person.Name}, Age: {person.Age}");
}
}
এখানে, FirstOrDefault()
মেথড দিয়ে "Alice" নামের প্রথম রেকর্ড ফেচ করা হয়েছে। যদি রেকর্ড পাওয়া না যায়, তবে এটি null
ফেরত দেবে।
using (var context = new ApplicationDbContext())
{
var person = context.People
.SingleOrDefault(p => p.Name == "Bob");
if (person != null)
{
Console.WriteLine($"Found: {person.Name}, Age: {person.Age}");
}
}
এখানে, SingleOrDefault()
মেথডটি নিশ্চিত করে যে শুধুমাত্র একটি রেকর্ড রয়েছে এবং সেটি ফেচ করে।
using (var context = new ApplicationDbContext())
{
var sortedPeople = context.People
.OrderBy(p => p.Age)
.ToList();
foreach (var person in sortedPeople)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, OrderBy()
মেথডটি Age
ফিল্ডের উপর ভিত্তি করে ডেটা সাজিয়েছে।
IEnumerable<T>
এর একটি লিস্টে পরিণত করে। যদি আপনি ডেটার উপর পরবর্তীতে অপারেশন করতে চান, তবে ToList()
ব্যবহার করতে পারেন।var people = context.People.AsNoTracking().ToList();
LINQ এর মাধ্যমে Entity Framework ব্যবহার করে ডাটাবেস থেকে ডেটা ফেচ করা খুবই সহজ এবং কার্যকরী। LINQ-এর Query Syntax এবং Method Syntax উভয়ই ডেটার উপর বিভিন্ন ধরনের অপারেশন করার সুযোগ দেয়। আপনি বিভিন্ন মেথডের সাহায্যে ডেটা ফিল্টার, সাজানো এবং সংশোধন করতে পারেন।
common.read_more